V5.x.x.x-V6.0.x.x升级指南

一、迁移指引

1、从V5升级到V6

\1. 先在 iOS SDK (V6) 下载及更新说明 下载最新版本的 V6 XLinkSDK。

\2. 删除原来项目中引入的 XLinkSDK 文件夹下的所有文件。

\3. 将刚下载的 V6 XLinkSDK 解压缩,将得到的 XLinkSDK 文件夹 拖入到你的项目中。

\4. 在XLinkUserDelegate 中的 - (void)onUserLogout:(LogoutReason)reason; 回调方法,增加 LogoutReasonUserAuthInfoInvaild 这种枚举的处理。

详细原因见增加枚举。

5.如果可以的话,参考第5点的接口变更列表,对你们使用的版本进行接口的升级。

6.错误码已经全部进行升级,具体定义需要参考以下链接错误码文档。

二、下载地址

1、文档地址

2、SDK下载地址

三、更新内容

1、新增

1.1、新增 XLinkProbeDataPointTask

XLinkProbeDataPointTask用于APP向设备获取数据端点,和 XLinkGetDataPointTask 的区别主要是如下表:

XLinkGetDataPointTask XLinkProbeDataPointTask
通过云端返回的数据 云端直接返回缓存在云端最新的数据端点 云端先向设备获取最新的数据端点,再返回这些数据端点
支持获取指定 index 的数据端点 不支持,返回的是全量的数据端点 支持,只返回传入的 indexArray 中包含的数据端点

注:XLinkProbeDataPointTask 中,如果 传入的参数 indexArray 为空,返回的数据端点列表也为空,如需获取全部的数据端点,则需要将所有的数据端点的 index 传入 indexArray 中。

1.2、增加多点登陆的支持。

实现该功能需要 XLinkConfig 中新增的 resource 属性,这个属性意为登录源,用户可以在登录时指定登录源,不同登录源可同时登录,登陆源只支持数字和字母,最大长度为16个字符,默认为nil;

1.3、新增 XLinkErrorCodeHelper 工具类

本次新增XLinkErrorCodeHelper的工具类,用于对SDK内部返回的XLinkErrorCode进行解析。

其中 +getErrorCodeDescWithErrorCode 可以用于解析成一个XLinkErrorDesc对象。该对象会包含该错误码的英文说明和中文说明。

/** 获取当前错误码的描述信息 @param errorCode 错误码 @return 描述信息 */
+ (XLinkErrorDesc *)getErrorCodeDescWithErrorCode:(NSInteger)errorCode;

同时可以直接用以下方法获取当前错误码的名称(英文)

/** 获取当前错误码的名称(英文) @param errorCode 错误码 @return 描述信息 */

+ (NSString *)getErrorCodeNameWithErrorCode:(NSInteger)errorCode

或者可以直接用以下方法获取当前错误码的名称(中文)

/** 获取当前错误码的名称(中文) @param errorCode 错误码 @return 描述信息 */
+ (NSString *)getErrorCodeDescStr:(NSInteger)errorCode

2、删除

本次更新暂无删除的内容。

3、改动

1.1、增加一个用户被下线的onUserLogout回调原因的枚举。

XLinkUserDelegate 中的 - (void)onUserLogout:(LogoutReason)reason; 回调方法,增加 LogoutReasonUserAuthInfoInvaild 这种枚举。

typedef NS_ENUM(NSUInteger, LogoutReason) {
    LogoutReasonUserLogout = 0,//用户主动退出
    LogoutReasonSingleSignKickOff = 1,//单点登录。当前用户被踢出
    LogoutReasonTokenExpired = 2,//用户凭证过期
    LogoutReasonUserAuthInfoInvaild = 3,//用户授权信息不正确
};

出现回调 LogoutReasonUserAuthInfoInvaild 这种情况可能出现在APP缓存用户授权信息在本地时出错,导致在第二次启动时,SDK 因为授权信息错误被云端拒绝连接,这个时候 SDK 就会进行回调。
当回调的时候,APP 需要处理关闭 SDK 并提示用户重新登录,因为 SDK 不会再维护云端的连接,给用户的感觉的是,不能通过云端发送任何数据,也接收不到云端发来的任何数据。

1.2、优化设备配对信息的存储

我们此次更新,将设备配对信息保存到云端的专有区域。用户只有在订阅该设备的情况下,才能获取到设备的配对信息。
注:设备配对信息是APP和设备在内网进行通信的凭证。

1.3、优化内网配对策略

当用户已经和设备建立起订阅关系之后,重复对设备进行添加操作,不再重新和设备进行内网配对,以节省设备端的配对额度。
如果用户添加设备,然后解除和设备的绑定,由于用户和设备的配对信息已经删除,因此重新进行添加操作时,会重新进行内网配对。

1.4、优化设备内网发现和连接机制

本次更新我们优化了 APP 和设备的内网发现和连接协议。在使用上对开发者没有影响。但是需要注意的是V6的 APP SDK 可以与 V5、V6 的设备进行内网发现和连接,但是V5的 APP SDK 只可以与 V5 的设备进行内网的发现和连接。

1.5、接口升级

为了为了SDK接口更加清晰明了,避免使用中的困惑,我们重新梳理调整了XLinkSDK中的接口,请旧版本(< 6.1)用户参照此指引进行升级。旧的接口还会保留可以继续使用,但是不会继续维护,但是希望尽快升级到新的接口。

1.5.1 XLinkTask
属性变更
  • task开始的回调
@property(copy, nonatomic) OnTaskStartBlock taskStartBlock ;

变更为

@property (copy, nonatomic) XLinkTaskDidStartHandler taskDidStartHandler;
  • task完成的回调
@property(copy, nonatomic) OnTaskCompleteBlock taskCompleteBlock ;
变更为
@property (copy, nonatomic) XLinkTaskDidCompletionHandler taskDidCompletionHandler;
  • task超时的回调
@property(copy, nonatomic) TimeoutBlock timeoutBlock;
变更为
@property (copy, nonatomic) XLinkTaskDidTimeoutHandler taskDidTimeoutHandler;
1.5.2 XLinkUserAuthorizeTask
方法变更
  • 新建用户使用账号密码登陆任务
+ (instancetype)userAuthorizeTaskWithAccount:(NSString *)account
                                withPassword:(NSString *)password
                                  withCropId:(NSString *)cropId
                                 withTimeout:(NSUInteger)timeout
                           withCompleteBlock:(XLinkUserAuthorizeTaskCompletionHandler)completeBlock ;

变更为

+ (instancetype)userAuthorizeTaskWithAccount:(NSString *)account
                                    password:(NSString *)password
                                      cropId:(NSString *)cropId
                                     timeout:(NSUInteger)timeout
                               completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.3 XLinkThirdPartyAuthorizeTask
方法变更
  • 新建第三方用户登陆任务
+ (instancetype)thirdPartyUserAuthorizeTaskWithSource:(XLinkUserSourceType)userSourceType
                                           withOpenId:(NSString *)openid
                                      withAccessToken:(NSString *)accessToken
                                         withNickName:(NSString *)nickName
                                           withCropId:(NSString *)cropId
                                          withTimeout:(NSUInteger)timeout
                                    withCompleteBlock:(XLinkUserAuthorizeTaskCompletionHandler)completeBlock ;

变更为

+ (instancetype)thirdPartyUserAuthorizeTaskWithSource:(XLinkUserSourceType)userSourceType
                                               openId:(NSString *)openid
                                          accessToken:(NSString *)accessToken
                                             nickName:(NSString *)nickName
                                               cropId:(NSString *)cropId
                                              timeout:(NSUInteger)timeout
                                    completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
  • 新建外国的第三方用户(如Twitter,Facebook)登陆任务
+ (instancetype)thirdForeignUserAuthorizeTaskWithContent:(NSDictionary *)content
                                              withCropId:(NSString *)cropId
                                             withTimeout:(NSUInteger)timeout
                                       withCompleteBlock:(XLinkUserAuthorizeTaskCompletionHandler)completeBlock;

变更为

+ (instancetype)thirdForeignUserAuthorizeTaskWithContent:(NSDictionary *)content
                                                  cropId:(NSString *)cropId
                                                 timeout:(NSUInteger)timeout
                                       completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.4 XLinkScanDeviceTask
方法变更
  • 新建扫描设备任务
+ (instancetype)scanDeviceTaskWithProductIds:(NSArray *)pidArray
                                 withTimeOut:(NSUInteger)timeout
                          withGotDeviceBlock:(XLinkDidDiscoveredDeviceHandler)gotDeviceBlock
                           withCompleteBlock:(OnTaskCompleteBlock)completeBlock;

变更为

+ (instancetype)scanDeviceTaskWithProductIdArray:(NSArray *)pidArray
                                         timeout:(NSUInteger)timeout
                      didDiscoveredDeviceHandler:(XLinkDidDiscoveredDeviceHandler)discoveredDeviceHandler
                               completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.5 XLinkAddDeviceTask
方法变更
  • 新建添加设备任务
+ (instancetype)addDeviceTaskWithDevice:(XDevice *)device
                            withPinCode:(NSData *)pinCode
                            withTimeOut:(NSUInteger)timeout
                      withCompleteBlock:(OnTaskCompleteBlock)completeBlock;

变更为

+ (instancetype)addDeviceTaskWithDevice:(XDevice *)device
                                pinCode:(NSData *)pinCode
                                timeout:(NSUInteger)timeout
                          completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
  • 新建二维码添加设备任务
+ (instancetype)addDeviceTaskWithQrcodeString:(NSString *)qrcodeString
                                  withTimeOut:(NSUInteger)timeout
                            withCompleteBlock:(OnTaskCompleteBlock)completeBlock;

变更为

+ (instancetype)addDeviceTaskWithQrcodeString:(NSString *)qrcodeString
                                      timeout:(NSUInteger)timeout
                                completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.6 XLinkRemoveDeviceTask
方法变更
  • 新建删除设备任务
+ (instancetype)removeDeviceTaskWithDevice:(XDevice *)device
                               withTimeOut:(NSUInteger)timeout
                         withCompleteBlock:(OnTaskCompleteBlock)completeBlock

变更为

+ (instancetype)removeDeviceTaskWithDevice:(XDevice *)device
                                   timeout:(NSUInteger)timeout
                             completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.7 XLinkSetDataPointTask
方法变更
  • 新建设置数据端点任务
+ (instancetype)setDataPointWithDevice:(XDevice *)device
                        withDataPoints:(NSArray <XLinkDataPoint *> *)DataPoints
                           withTimeOut:(NSUInteger)timeout
                     withCompleteBlock:(OnTaskCompleteBlock)completeBlock;

变更为

+ (instancetype)setDataPointTaskWithDevice:(XDevice *)device
                                dataPoints:(NSArray <XLinkDataPoint *> *)dataPoints
                                   timeout:(NSUInteger)timeout
                             completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.8 XLinkShareDeviceTask
方法变更
  • 新建通过账号分享设备任务
+ (instancetype)shareDeviceTaskWithDevice:(XDevice *)device
                              withAccount:(NSString *)account
                              withExpired:(NSString *)expired
                            withShareMode:(XLinkShareDeviceMode)shareDeviceMode
                            withAuthority:(NSString *)authority
                              withTimeOut:(NSUInteger)timeout
         withShareDeviceTaskCompleteBlock:(XLinkShareDeviceTaskCompletionHandler)shareCompleteBlock ;

变更为

+ (instancetype)shareDeviceTaskWithDevice:(XDevice *)device
                                  account:(NSString *)account
                                  expired:(NSString *)expired
                                shareMode:(XLinkShareDeviceMode)shareDeviceMode
                                authority:(NSString *)authority
                                  timeout:(NSUInteger)timeout
                            completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
  • 新建通过openId分享设备任务
+ (instancetype)shareDeviceTaskWithDevice:(XDevice *)device
                               withOpenId:(NSString *)openId
                           withSourceType:(XLinkUserSourceType)sourceType
                              withExpired:(NSString *)expired
                            withShareMode:(XLinkShareDeviceMode)shareDeviceMode
                            withAuthority:(NSString *)authority
                              withTimeOut:(NSUInteger)timeout
         withShareDeviceTaskCompleteBlock:(XLinkShareDeviceTaskCompletionHandler)shareCompleteBlock ;

变更为

+ (instancetype)shareDeviceTaskWithDevice:(XDevice *)device
                                   openId:(NSString *)openId
                               sourceType:(XLinkUserSourceType)sourceType
                                  expired:(NSString *)expired
                                shareMode:(XLinkShareDeviceMode)shareDeviceMode
                                authority:(NSString *)authority
                                  timeout:(NSUInteger)timeout
                            completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.9 XLinkGetDataPointTask
方法变更
  • 新建获取数据端点任务
+ (instancetype)getDataPointTaskWithDevice:(XDevice *)device
                               withTimeOut:(NSUInteger)timeout
         withGetDataPointTaskCompleteBlock:(XLinkGetDataPointTaskCompletionHandler)completeBlock ;

变更为

+ (instancetype)getDataPointTaskWithDevice:(XDevice *)device
                                   timeout:(NSUInteger)timeout
                             completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.10 XLinkProbeDataPointTask
方法变更
  • 新建获取数据端点的任务
+ (instancetype)probeDataPointTaskWithDevice:(XDevice *)device
                                  indexArray:(NSArray <NSNumber *> *)indexArray
                                     timeOut:(NSUInteger)timeout
                 probeDataPointCompleteBlock:(XLinkProbeDataPointTaskCompletionHandler)completeBlock ;

变更为

+ (instancetype)probeDataPointTaskWithDevice:(XDevice *)device
                                  indexArray:(NSArray <NSNumber *> *)indexArray
                                     timeout:(NSUInteger)timeout
                               completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.11 XLinkSyncDeviceListTask
方法变更
  • 新建获取数据端点的任务
+ (instancetype)syncDeviceListTaskWithVersion:(int)version
                                  withTimeout:(NSUInteger)timeout
                             withConnectLocal:(BOOL)connectLocal
                            withCompleteBlock:(XLinkSyncDeviceListCompletionHandler)syncCompleteBlock ;

变更为

+ (instancetype)syncDeviceListTaskWithVersion:(int)version
                                      timeout:(NSUInteger)timeout
                                 connectLocal:(BOOL)connectLocal
                                completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.12 XLinkConnectDeviceTask
方法变更
  • 新建连接设备任务
+ (instancetype)connectDeviceTaskWithDevice:(XDevice *)device
                                withTimeOut:(NSUInteger)timeout
                          withCompleteBlock:(OnTaskCompleteBlock)completeBlock;

变更为

+ (instancetype)connectDeviceTaskWithDevice:(XDevice *)device
                           connectionPolicy:(XDeviceConnectionPolicy)connectionPolicy
                                    timeout:(NSUInteger)timeout
                              completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;
1.5.13 XLinkGetDeviceListTask
方法变更
  • 新建获取设备列表任务
+ (instancetype)getDeviceListTaskWithUserId:(NSNumber *)userId
                                withVersion:(int)version
                                withTimeOut:(NSUInteger)timeout
                          withCompleteBlock:(XLinkGetDeviceTaskCompletionHandler)completeBlock;

变更为

+ (instancetype)getDeviceListTaskWithVersion:(int)version
                                    timeout:(NSUInteger)timeout
                              completionHandler:(XLinkTaskDidCompletionHandler)completionHandler;

1.6、错误码重新定义

由于原来的错误码定义不够清晰,出现问题的时候不容易发现具体的原因,因此错误码进行了重新的定义,需要根据新的错误码进行相关代码的改动。

typedef NS_ENUM(NSInteger, XLinkErrorCode) {
    //没有错误
    XLinkErrorCodeNoError = 0,
    //本地配对握手成功
    XLinkErrorCodePairingHandshakeLocalSuccess = 100400,
    //本地配对握手Dh参数不合法
    XLinkErrorCodePairingHandshakeLocalFailDhParamsInvalid = 100401,
    //本地Ticket验证失败(为空、不匹配)
    XLinkErrorCodePairingHandshakeLocalFailTicketVerify = 100402,
    //本地配对握手Public Key不合法
    XLinkErrorCodePairingHandshakeLocalFailPublicKeyInvalid = 100403,
    //本地Pincode验证失败(为空、不匹配)
    XLinkErrorCodePairingHandshakeLocalFailPinVerify = 100404,
    //设备不在配对状态
    XLinkErrorCodePairingHandshakeLocalFailDeviceNotReady = 100405,
    //本地配对成功
    XLinkErrorCodePairingLocalSuccess = 100600,
    //本地配对达到上限
    XLinkErrorCodePairingLocalFailReachPairingLimit = 100601,
    //本地会话握手成功
    XLinkErrorCodeSessionHandshakeLocalSuccess = 100900,
    //本地会话未知Pairing Id
    XLinkErrorCodeSessionHandshakeLocalFailUnknownPairingId = 100901,
    //本地会话验证失败
    XLinkErrorCodeSessionHandshakeLocalFailVerify = 100902,
    //本地会话Dh参数不合法
    XLinkErrorCodeSessionHandshakeLocalFailDhParamsInvalid = 100903,
    //本地Public Key不合法
    XLinkErrorCodeSessionHandshakeLocalFailPublicKeyInvalid = 100904,
    //本地设置数据端点成功
    XLinkErrorCodeSetDataPointLocalSuccess = 101300,
    //本地设置数据端点失败
    XLinkErrorCodeSetDataPointLocalFail = 101301,
    //未授予本地设置端点权限
    XLinkErrorCodeSetDataPointLocalFailUnauthorised = 101302,
    //设备问题
    XLinkErrorCodeSetDataPointLocalFailDeviceFault = 101303,
    //数据端点类型错误
    XLinkErrorCodeSetDataPointLocalFailTypeError = 101304,
    //获取数据端点成功
    XLinkErrorCodeGetDataPointLocalSuccess = 101500,
    //Flag参数不支持
    XLinkErrorCodeGetDataPointLocalFailFlagNotSupported = 101501,
    //未授予获取权限
    XLinkErrorCodeGetDataPointLocalFailUnauthorised = 101502,
    //获取Ticket成功
    XLinkErrorCodeGetTicketLocalSuccess = 101700,
    //未知Ticket Type
    XLinkErrorCodeGetTicketLocalFailUnknownType = 101701,
    //获取Probe成功
    XLinkErrorCodeProbeLocalSuccess = 110300,
    //Flag参数不支持
    XLinkErrorCodeProbeLocalFailFlagNotSupported = 110301,
    //未授予获取权限
    XLinkErrorCodeProbeLocalFailUnauthorised = 110302,
    //云端设置数据端点成功
    XLinkErrorCodeSetDataPointCloudSuccess = 200800,
    //云端设置数据端点失败
    XLinkErrorCodeSetDataPointCloudFail = 200801,
    //未授予设置权限
    XLinkErrorCodeSetDataPointCloudFailUnauthorised = 200802,
    //云端获取数据端点成功
    XLinkErrorCodeGetDataPointCloudSuccess = 201000,
    //云端获取数据端点失败,服务不可用
    XLinkErrorCodeGetDataPointCloudFail = 201001,
    //云端订阅设备成功
    XLinkErrorCodeSubscribeDeviceSuccess = 201601,
    //云端订阅设备失败,设备信息有误
    XLinkErrorCodeSubscribeDeviceFailDeviceInfoInvaild = 201602,
    //云端订阅设备失败,Ticket校验失败
    XLinkErrorCodeSubscribeDeviceFailTicketInvaild = 201603,
    //云端订阅设备失败, 服务器出错
    XLinkErrorCodeSubscribeDeviceFail = 201604,
    //云端订阅设备失败,设备订阅模式限制订阅失败
    XLinkErrorCodeSubscribeDeviceFailDeviceModeLimited = 201605,
    //云端获取Ticket成功
    XLinkErrorCodeGetTicketCloudSuccess = 202000,
    //任务超时
    XLinkErrorCodeTaskTimeout = 300101,
    //任务取消
    XLinkErrorCodeTaskCanceled = 300102,
    //任务依赖等待超时(如云端任务需要云端连接成功才能操作,等待期间云端未能连接成功导致超时)
    XLinkErrorCodeTaskDependenceTimeout = 300103,
    //未知错误
    XLinkErrorCodeUnknown = 400101,
    //未知的Api错误,或者解析Api错误码时出错
    XLinkErrorCodeApiUnknown = 400102,
    //Socket 连接超时
    XLinkErrorCodeSocketTimeout = 400103,
    //SDK还没启动
    XLinkErrorCodeSDKNotStarted = 400104,
    //Client操作时参数不合法,比如无法获取到Clientid拼接Topic进行通讯
    XLinkErrorCodeMqttFailClientParamsNotExist = 400201,
    //Client不存在,无法进行相关通讯操作
    XLinkErrorCodeMqttFailClientNotExist = 400202,
    //Mqtt Client未连接成功
    XLinkErrorCodeMqttFailClientDisconnected = 400203,
    //Client内部出错,属于Client的未知错误
    XLinkErrorCodeMqttFailClientInnerError = 400204,
    //初始化本地Client失败
    XLinkErrorCodeMqttFailLocalClientInit = 400205,
    //初始化云端Client失败
    XLinkErrorCodeMqttFailCloudClientInit = 400206,
    //本地发布Topic失败
    XLinkErrorCodeMqttFailLocalPublish = 400207,
    //云端发布Topic失败
    XLinkErrorCodeMqttFailCloudPublish = 400208,
    //协议版本不支持
    XLinkErrorCodeProtocolVersionNotSupported = 400301,
    //会话解密失败
    XLinkErrorCodeProtocolFailEncryptSession = 400302,
    //会话加密失败
    XLinkErrorCodeProtocolFailDecryptSession = 400303,
    //配对解密失败
    XLinkErrorCodeProtocolFailEncryptPairing = 400304,
    //配对加密失败
    XLinkErrorCodeProtocolFailDecryptPairing = 400305,
    //配对握手加密失败
    XLinkErrorCodeProtocolFailDecryptPairingHandshake = 400306,
    //配对握手解密失败
    XLinkErrorCodeProtocolFailEncryptPairingHandshake = 400307,
    //Pincode加密失败
    XLinkErrorCodeProtocolFailEncryptPinCode = 400308,
    //Pincode解密失败
    XLinkErrorCodeProtocolFailDecryptPinCode = 400309,
    //配对握手会话信息不存在
    XLinkErrorCodeProtocolFailPairingHandshakeNotExit = 400310,
    //配对信息不存在
    XLinkErrorCodeProtocolFailPairingNotExist = 400311,
    //本地会话信息不存在
    XLinkErrorCodeProtocolFailSessionNotExist = 400312,
    //云端连接失败
    XLinkErrorCodeProtocolFailCloudCmConnected = 400313,
    //断开云端连接失败
    XLinkErrorCodeProtocolFailCloudCmDisconnected = 400314,
    //打包数据包出错
    XLinkErrorCodeProtocolFailPacketData = 400315,
    //解析数据包出错
    XLinkErrorCodeProtocolFailParseData = 400316,
    //设备本地未连接
    XLinkErrorCodeDeviceFailLocalNotConnected = 400401,
    //设备云端未连接
    XLinkErrorCodeDeviceFailCloudNotConnected = 400402,
    //设备本地关闭Session失败
    XLinkErrorCodeDeviceFailLocalCloseSession = 400403,
    //设备云端关闭Session失败
    XLinkErrorCodeDeviceFailCloudCloseSession = 400404,
    //维护的设备不存在
    XLinkErrorCodeDeviceFailDeviceNotExist = 400405,
    //设备ID不能为0
    XLinkErrorCodeDeviceIdIsZero = 400406,
    //用户断开云端连接
    XLinkErrorCodeUserCloudCmDisconnected = 400501,
    //用户断开本地Client连接
    XLinkErrorCodeUserLocalDisconnected = 400502,
     
    //参数不正确的
    //参数不合法(参数存在但是未获取需要的信息,如设备对象对象存在但获取不到Mac)
    XLinkErrorCodeParamsInvalid = 400601,
    //需要的参数不存在(参数不存在,Null或者Nil)
    XLinkErrorCodeParamsNotExist = 400602,
    //InviteCode不存在
    XLinkErrorCodeParamsInviteCodeNotExist = 400603,
    //配置项不正确的
    //没有配置企业id
    XLinkErrorCodeConfigWithoutCropId = 400701,
     
    //进入产测成功
    XLinkErrorCodeFactoryStartLocalSuccess = 500100,
    //进入产测失败,设备不在线
    XLinkErrorCodeFactoryStartLocalFailDeviceOffline = 500201,
    //进入产测失败,未使能产测
    XLinkErrorCodeFactoryStartLocalFailDeviceDisabled = 500202,
    //结束产测成功
    XLinkErrorCodeFacotryFinishLocalSuccess = 500400,
    //结束产测失败
    XLinkErrorCodeFacotryFinishLocalFail = 500401,
    //获取Rssi成功
    XLinkErrorCodeFactoryRssiLocalSuccess = 500600,
    //获取Rssi失败
    XLinkErrorCodeFactoryRssiLocalFail = 500601,
    //自定义产测成功
    XLinkErrorCodeFactoryCustomLocalSuccess = 500800,
     
     
    ////////////////////////////  Api 接口 //////////////////////////////////
     
    //网络Io错误
    XLinkErrorCodeApiParamNetioError = 1001001,
    //请求数据字段验证不通过
    XLinkErrorCodeApiParamValidError = 4001001,
    //请求数据必须字段不可为空
    XLinkErrorCodeApiParamMustNotNull = 4001002,
    //手机验证码不存在
    XLinkErrorCodeApiPhoneVerifycodeNotExists = 4001003,
    //手机验证码错误
    XLinkErrorCodeApiPhoneVerifycodeError = 4001004,
    //注册的手机号已存在
    XLinkErrorCodeApiRegisterPhoneExists = 4001005,
    //第三方要绑定手机号已存在
    XLinkErrorCodeApiRegisterThirdpartyPhoneExists = 4001094,
    //第三方要绑定邮箱已存在
    XLinkErrorCodeApiRegisterThirdpartyEmailExists = 4001096,
    //注册的邮箱已存在
    XLinkErrorCodeApiRegisterEmailExists = 4001006,
    //密码错误
    XLinkErrorCodeApiAccountPasswordError = 4001007,
    //密码重试次数过多
    XLinkErrorCodeApiAccountPasswordRetryLimit = 4001061,
    //帐号不合法
    XLinkErrorCodeApiAccountVaildError = 4001008,
    //企业成员状态不合法
    XLinkErrorCodeApiMemberStatusError = 4001009,
    //刷新Token不合法
    XLinkErrorCodeApiRefreshTokenError = 4001010,
    //未知成员角色类型
    XLinkErrorCodeApiMemberRoleTypeUnkown = 4001011,
    //只有管理员才能邀请
    XLinkErrorCodeApiMemberInviteNotAdmin = 4001012,
    //不可修改其他成员信息
    XLinkErrorCodeApiCanNotModifyOtherMemberInfo = 4001013,
    //不能删除本人
    XLinkErrorCodeApiCanNotDeleteYourself = 4001014,
    //未知的产品连接类型
    XLinkErrorCodeApiProductLinkTypeUnkown = 4001015,
    //已发布的产品不可删除
    XLinkErrorCodeApiCanNotDeleteReleaseProduct = 4001016,
    //固件版本已存在
    XLinkErrorCodeApiFirmwareVersionExists = 4001017,
    //数据端点未知数据类型
    XLinkErrorCodeApiDataPointTypeUnkown = 4001018,
    //数据端点索引已存在
    XLinkErrorCodeApiDataPointIndexExists = 4001019,
    //已发布的数据端点不可删除
    XLinkErrorCodeApiCantNotDeleteReleasedDataPoint = 4001020,
    //该产品下设备Mac地址已存在
    XLinkErrorCodeApiDeviceMacAddressExists = 4001021,
    //不能删除已激活的设备
    XLinkErrorCodeApiCanNotDeleteActivatedDevice = 4001022,
    //扩展属性Key为预留字段
    XLinkErrorCodeApiPropertyKeyProtect = 4001023,
    //设备扩展属性超过上限
    XLinkErrorCodeApiPropertyLimit = 4001024,
    //新增已存在的扩展属性
    XLinkErrorCodeApiPropertyAddExists = 4001025,
    //更新不存在的扩展属性
    XLinkErrorCodeApiPropertyUpdateNotExists = 4001026,
    //属性字段名不合法
    XLinkErrorCodeApiPropertyKeyError = 4001027,
    //邮件验证码不存在
    XLinkErrorCodeApiEmailVerifycodeNotExists = 4001028,
    //邮件验证码错误
    XLinkErrorCodeApiEmailVerifycodeError = 4001029,
    //用户状态不合法
    XLinkErrorCodeApiUserStatusError = 4001030,
    //用户手机尚未认证
    XLinkErrorCodeApiUserPhoneNotVaild = 4001031,
    //用户邮箱尚未认证
    XLinkErrorCodeApiUserEmailNotVaild = 4001032,
    //用户已经订阅设备
    XLinkErrorCodeApiUserHasSubscribeDevice = 4001033,
    //用户没有订阅该设备
    XLinkErrorCodeApiUserHaveNoSubscribeDevice = 4001034,
    //自动升级任务名称已存在
    XLinkErrorCodeApiUpgradeTaskNameExists = 4001035,
    //升级任务状态未知
    XLinkErrorCodeApiUpgradeTaskStatusUnkown = 4001036,
    //已有相同的起始版本升级任务
    XLinkErrorCodeApiUpgradeTaskHaveStartingVersion = 4001037,
    //设备激活失败
    XLinkErrorCodeApiDeviceActiveFail = 4001038,
    //设备认证失败
    XLinkErrorCodeApiDeviceAuthFail = 4001039,
    //订阅设备认证码错误
    XLinkErrorCodeApiSubscribeAuthorizeCodeError = 4001041,
    //授权名称已存在
    XLinkErrorCodeApiEmpowerNameExists = 4001042,
    //该告警规则名称已存在
    XLinkErrorCodeApiAlarmRuleNameExists = 4001043,
    //数据变名称已存在
    XLinkErrorCodeApiDataTableNameExists = 4001045,
    //产品固件文件超过大小限制
    XLinkErrorCodeApiProductFirmwareFileSizeLimit = 4001046,
    //Apn密钥文件超过大小限制
    XLinkErrorCodeApiAppApnLicenseFileSizeLimit = 4001047,
    //App的Apn功能未启用
    XLinkErrorCodeApiAppApnIsNotEnable = 4001048,
    //产品未允许用户注册设备
    XLinkErrorCodeApiProductCanNotRegisterDevice = 4001049,
    //不是设备的管理员
    XLinkErrorCodeApiNotDeviceAdmin = 4001076,
    //禁止访问
    XLinkErrorCodeApiInvalidAccess = 4031001,
    //禁止访问,需要Access-Token
    XLinkErrorCodeApiNeedAccessToken = 4031002,
    //无效的Access-Token
    XLinkErrorCodeApiAccessTokenInvalid = 4031003,
    //Access-Token过期
    XLinkErrorCodeApiAccessTokenExpired = 4031021,
    //Access-Token需要重新刷新
    XLinkErrorCodeApiAccessTokenRefresh = 4031022,
    //需要企业的调用权限
    XLinkErrorCodeApiNeedCorpApi = 4031004,
    //需要企业管理员权限
    XLinkErrorCodeApiNeedCorpAdminMember = 4031005,
    //需要数据操作权限
    XLinkErrorCodeApiNeedDataPermission = 4031006,
    //禁止访问私有数据
    XLinkErrorCodeApiInvalidAccessPrivateData = 4031007,
    //分享已经被取消
    XLinkErrorCodeApiShareCanceled = 4031008,
    //分享已经接受
    XLinkErrorCodeApiShareAccepted = 4031009,
    //分享无效
    XLinkErrorCodeApiShareInvalid = 4031012,
    //Url找不到
    XLinkErrorCodeApiUrlNotFound = 4041001,
    //Share找不到
    XLinkErrorCodeApiShareNotPending = 4001216,
    //Share找不到2
    XLinkErrorCodeApiShareNotPending2 = 4001218,
    //企业成员帐号不存在
    XLinkErrorCodeApiMemberAccountNoExists = 4041002,
    //企业成员不存在
    XLinkErrorCodeApiMemberNotExists = 4041003,
    //激活的成员邮箱不存在
    XLinkErrorCodeApiMemberInviteEmailNotExists = 4041004,
    //产品信息不存在
    XLinkErrorCodeApiProductNotExists = 4041005,
    //产品固件不存在
    XLinkErrorCodeApiFirmwareNotExists = 4041006,
    //数据端点不存在
    XLinkErrorCodeApiDataPointNotExists = 4041007,
    //设备不存在
    XLinkErrorCodeApiDeviceNotExists = 4041008,
    //设备扩展属性不存在
    XLinkErrorCodeApiDevicePropertyNotExists = 4041009,
    //企业不存在
    XLinkErrorCodeApiCorpNotExists = 4041010,
    //用户不存在
    XLinkErrorCodeApiUserNotExists = 4041011,
    //用户扩展属性不存在
    XLinkErrorCodeApiUserPropertyNotExists = 4041012,
    //升级任务不存在
    XLinkErrorCodeApiUpgradeTaskNotExists = 4041013,
    //第三方身份授权不存在
    XLinkErrorCodeApiEmpowerNotExists = 4041014,
    //告警规则不存在
    XLinkErrorCodeApiAlarmRuleNotExists = 4041015,
    //数据表不存在
    XLinkErrorCodeApiDataTableNotExists = 4041016,
    //数据不存在
    XLinkErrorCodeApiDataNotExists = 4041017,
    //分享资源不存在
    XLinkErrorCodeApiShareNotExists = 4041018,
    //企业邮箱不存在
    XLinkErrorCodeApiCorpEmailNotExists = 4041019,
    //App不存在
    XLinkErrorCodeApiAppNotExists = 4041020,
    //第三方授权错误=其它途径)
    XLinkErrorCodeApiThirdPartyOpenIdExistOther = 4001125,
    //Qq授权错误
    XLinkErrorCodeApiThirdPartyOpenIdExistQq = 4001126,
    //微信授权错误
    XLinkErrorCodeApiThirdPartyOpenIdExistWx = 4001127,
    //微博授权错误
    XLinkErrorCodeApiThirdPartyOpenIdExistWb = 4001128,
    //服务端发生异常
    XLinkErrorCodeApiServiceException = 5031001,
};
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题